package SecondeStage.ChangYongLei.String;

public class StringMethod {
    public static void main(String[] args) {
        // 1. euqals, 比较内容是否相同，区分大小写
        String str1 ="hello";
        String str2 ="Hello";
        System.out.println(str1.equals(str2));

        // 2.equalsIgnoreCase 忽略大小写的判断内容是否相等
        String username="johN";
        if ("john".equalsIgnoreCase(username)) {
            System.out.println("succse");
        }else {
            System.out.println("failure");
        }

        // 3. length 获取字符的个数，字符串长度
        System.out.println("韩顺平".length());

        // 4. indexOf 获取字符(或者 子字符串)在字符串对象中第一次出现的索引，如果找不到，返回-1
        int index = str1.indexOf('l');
        System.out.println(index);

        // 5. lastIndexOf 获取字符(或者 子字符串)在字符串对象中最后一次出现的索引，如果找不到，返回-1
        System.out.println(str1.lastIndexOf('l'));

        // 6. subString 截取指定范围的子串
        String name = "hello,张三";
        System.out.println(name.substring(6)); // 从索引6开始截取后面所有内容
        System.out.println(name.substring(0,5)); // 从索引0开始截取，截取到索引5-1-> [0,5)

        // 7. toUpperCase 转换成大写
        System.out.println("hello".toUpperCase());

        // 8. toLowerCase 转换成小写
        System.out.println("HELLO".toLowerCase());

        // 9. concat拼接字符串
        String s1 ="宝玉";
        s1 = s1.concat("林黛玉").concat("薛宝钗").concat("together");
        System.out.println(s1);

        // 10. replace替换字符串中的字符
        // s1.replace() 方法执行后，返回的结果才是替换过的，对s1本身没有影响
        String s11 = s1.replace("林黛玉","贾母");
        System.out.println(s11);

        // 11. split 分割字符串,对于某些分割字符,我们需要转义，比如 | \\ 等
        String poem = "锄禾日当午,汗滴禾下土,谁知盘中餐,粒粒皆辛苦";
        // 以 , 为标准对poem进行分割，返回一个数组
        String[] split = poem.split(",");
        System.out.println("这首诗的内容是：");
        for (int i = 0; i < split.length; i++) {
            System.out.println(split[i]);
        }

        // 以 \\ 为标准对poem进行分割，返回一个数组
        String poem2 ="E:\\aaa\\bbb";
        String[] split2 = poem2.split("\\\\");
        System.out.println("分割后的内容是：");
        for (int i = 0; i < split2.length; i++) {
            System.out.println(split2[i]);
        }

        // 12. toCharArray 转换成字符数组
        String s = "happy";
        char[] chs = s.toCharArray();
        for (int i = 0; i < chs.length; i++) {
            System.out.println(chs[i]);
        }

        // 13. compareTo 比较两个字符串的大小，如果前者大，则返回正数；后者大，返回负数；如果相等，返回0
        String a ="jchn";
        String b ="jack";
        String c ="jac";
        String d ="jack";
        System.out.println(a.compareTo(b)); // 长度相同，返回的是 'c'-'a'=2
        System.out.println(c.compareTo(d)); // 长度不同，但前面部分字符相同，返回的是 c.length - d.length

        // 14. format 格式字符串,好处是复用性强
        // %s %d %f %c 称为占位符
        String name1 ="john";
        int age =10;
        double score = 98.3/3;
        char gender ='男';
        String formatStr = "我的姓名是%s 年龄是%d,成绩是%.2f 性别是%c.希望大家喜欢我！";
        String info =String.format(formatStr,name1,age,score,gender);
        System.out.println(info);
    }
}
